Users have access to an ever increasing variety of streaming data. For example, users may view video clips, television programming, movies, and so forth via a network. Live media streaming may be accomplished with a variety of solutions, such as HTTP Dynamic Streaming (HDS) by Adobe®, HTTP Live Streaming (HLS) by Apple®, and others. These solutions leverage existing Internet infrastructure and strengths to deliver live or on-demand data streams in small, cache-friendly segments or chunks.
Some HTTP-based media streaming communication protocols, such as HLS and HDS, have defined bitrate profiles which enable bitrate adaptivity and stream failover. Each bitrate profile breaks the overall data stream into a sequence of small HTTP bused file downloads, each download loading one short chunk or segment of the overall data stream. As the data stream is played at a client device, the client device may select from a number of different alternate streams containing the same material encoded at a variety of different data rates, allowing the streaming session to adapt to the available data rate or bandwidth.
At the start of the streaming session, the client device receives a master manifest file, referred to as “manifest” herein. For example, HLS uses a manifest in the form of an .m3u8 file extension, while HDS uses a manifest in the form of an .f4m extension. The manifest provides the client with the location of the data streams for available bitrate profiles which enables the client to stream media content.
Conventionally, the manifest is defined as a static layout of bitrate profiles and renditions and server URLs. The manifest is static at the beginning of video playback and throughout the video playback, and is not expected to change. Similarly, server locations for variant data streams are also static. Consequently, if the manifest is changed during playback to reflect changes to server locations and bitrate availability, applications running on client devices will need to restart their playback session to conform to the new manifest, which causes a disruption in the user's viewing experience.